LINQ ব্যবহার করে ডেটা কুয়েরি করা

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core) Entity Framework Core (EF Core) |
244
244

LINQ (Language Integrated Query) হলো .NET এর একটি শক্তিশালী ফিচার, যা ডেটা সোর্সের উপর কুয়েরি চালানোর জন্য ব্যবহার করা হয়। LINQ ব্যবহার করে SQL ডেটাবেস, XML ডকুমেন্ট, কালেকশন (Lists, Arrays), এবং আরও বিভিন্ন ধরনের ডেটা কুয়েরি করা যায়। এটি ডেভেলপারদের জন্য সহজ এবং রিডেবল কুয়েরি লেখার সুযোগ দেয়, যা টাইপ-সেফ এবং কম্পাইল টাইমে যাচাইযোগ্য।


LINQ এর মূল কাঠামো

LINQ সাধারণত দুইভাবে লেখা যায়:

  • Query Syntax: SQL-এর মতো স্টাইল ব্যবহার করে কুয়েরি লেখা।
  • Method Syntax: Extension Methods (যেমন .Where(), .Select(), .OrderBy()) ব্যবহার করে কুয়েরি লেখা।

LINQ ব্যবহার করে ডেটা কুয়েরি করার উদাহরণ

১. ইন-মেমোরি ডেটা সোর্সের উপর কুয়েরি

ডেটাসেট প্রস্তুত:
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Query Syntax:
var evenNumbers = from number in numbers
                  where number % 2 == 0
                  select number;

foreach (var num in evenNumbers)
{
    Console.WriteLine(num);
}
Method Syntax:
var evenNumbers = numbers.Where(number => number % 2 == 0);

foreach (var num in evenNumbers)
{
    Console.WriteLine(num);
}

২. ক্লাস অবজেক্টের উপর কুয়েরি

ডেটাসেট প্রস্তুত:
public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

List<Product> products = new List<Product>
{
    new Product { Id = 1, Name = "Laptop", Price = 800 },
    new Product { Id = 2, Name = "Mouse", Price = 20 },
    new Product { Id = 3, Name = "Keyboard", Price = 30 },
    new Product { Id = 4, Name = "Monitor", Price = 150 }
};
Query Syntax:
var expensiveProducts = from product in products
                        where product.Price > 100
                        select product;

foreach (var product in expensiveProducts)
{
    Console.WriteLine($"{product.Name}: ${product.Price}");
}
Method Syntax:
var expensiveProducts = products.Where(p => p.Price > 100);

foreach (var product in expensiveProducts)
{
    Console.WriteLine($"{product.Name}: ${product.Price}");
}

LINQ এর বিভিন্ন অপারেশন

১. Filtering: ডেটা ফিল্টার করার জন্য Where() ব্যবহার করা হয়।

var filteredProducts = products.Where(p => p.Price > 50);

২. Sorting: ডেটা সাজানোর জন্য OrderBy() এবং OrderByDescending() ব্যবহার করা হয়।

var sortedProducts = products.OrderBy(p => p.Price); // Ascending
var sortedProductsDesc = products.OrderByDescending(p => p.Price); // Descending

৩. Projection: নির্দিষ্ট ফিল্ড নির্বাচন করতে Select() ব্যবহার করা হয়।

var productNames = products.Select(p => p.Name);

foreach (var name in productNames)
{
    Console.WriteLine(name);
}

৪. Aggregation: ডেটার উপর যোগফল, গড় ইত্যাদি হিসাব করতে Sum(), Average(), Count() ব্যবহার করা হয়।

var totalPrice = products.Sum(p => p.Price); // Total Price
var averagePrice = products.Average(p => p.Price); // Average Price
var productCount = products.Count(); // Total Count

৫. Group By: ডেটা গ্রুপ করতে GroupBy() ব্যবহার করা হয়।

var groupedProducts = products.GroupBy(p => p.Price > 100 ? "Expensive" : "Affordable");

foreach (var group in groupedProducts)
{
    Console.WriteLine($"{group.Key} Products:");
    foreach (var product in group)
    {
        Console.WriteLine($" - {product.Name}");
    }
}

৬. Joining: একাধিক ডেটা সোর্স একত্রিত করতে Join() ব্যবহার করা হয়।

List<Category> categories = new List<Category>
{
    new Category { Id = 1, Name = "Electronics" },
    new Category { Id = 2, Name = "Accessories" }
};

var productCategories = products.Join(categories,
    product => product.Id,
    category => category.Id,
    (product, category) => new
    {
        ProductName = product.Name,
        CategoryName = category.Name
    });

foreach (var item in productCategories)
{
    Console.WriteLine($"{item.ProductName} belongs to {item.CategoryName} category.");
}

LINQ এবং Entity Framework Core

LINQ শুধুমাত্র ইন-মেমোরি ডেটা কুয়েরি করার জন্য নয়, এটি Entity Framework Core এর সঙ্গে ডেটাবেস কুয়েরির জন্যও ব্যবহৃত হয়।

উদাহরণ:
var expensiveProducts = context.Products
                               .Where(p => p.Price > 100)
                               .OrderBy(p => p.Name)
                               .ToList();

foreach (var product in expensiveProducts)
{
    Console.WriteLine($"{product.Name}: ${product.Price}");
}

LINQ এর সুবিধা

  • টাইপ-সেফ: কম্পাইল টাইমে ডেটা টাইপ যাচাই করা হয়।
  • রিডেবল: SQL-এর মতো সিনট্যাক্সের কারণে এটি বুঝতে সহজ।
  • ডাইনামিক কুয়েরি: একই কুয়েরি বিভিন্ন ধরনের ডেটা সোর্সে প্রয়োগ করা যায়।
  • প্রোডাক্টিভিটি বৃদ্ধি: সহজ সিনট্যাক্স এবং অল্প কোডের মাধ্যমে জটিল কুয়েরি করা যায়।

LINQ ডেটা কুয়েরি করার একটি শক্তিশালী এবং কার্যকর পদ্ধতি, যা ডেভেলপারদের প্রোডাক্টিভিটি বাড়াতে সহায়তা করে। এটি ইন-মেমোরি ডেটা এবং ডেটাবেস উভয়ের সঙ্গেই কাজ করতে পারে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion